模拟控制器离散化

Discretization of Analog Controllers

离散系统控制设计完后,都写上控制器算法

D(z)=U(z)E(z)u(k)=Z−1[D(z)E(z)]

一、响应不变法(z 变换法)

1.1 脉冲响应不变法

基本思想:数字控制器 D(z) 产生的脉冲响应序列与模拟控制器 D(s) 产生的脉冲响应序列在采样瞬间相等。由于 L[δ(t)]=1,实际上就是对 D(s) 取 z 变换:

U(s)=D(s)E(s)=D(s)D(z)=Z[D(s)]

如果原控制器稳定,则离散化后也稳定,不具有串联性质

1.2 阶跃响应不变法

基本思想:数字控制器 D(z) 产生的单位阶跃响应与模拟控制器 D(s) 产生的单位阶跃响应在采样瞬间相等。实际上就是 ZOH 串联的广义对象 的 z 变换:

D(z)=Z[1−e−TssD(s)]=(1−z−1)Z[D(s)s]

如果原控制器稳定,则离散化后也稳定,不具有串联性质

例子: D(s)=as+a,求阶跃响应不变法对应的数字控制器,以及对应的差分方程

U(z)E(z)=D(z)=(1−z−1)Z[a(s+a)s]=(1−z−1)Z[(1s−1s+a)]=(1−z−1)(11−z−1−11−e−aTz−1)=z−1(1−e−aT)1−e−aTz−1

进一步得到差分方程:

u(k)−e−aTu(k−1)=(1−e−aT)e(k−1)

二、差分变换法

将微分方程中的导数项用有限差分来近似等效,得到一个与原微分方程逼近的差分方程。欧拉法

根据 z 变换 的定义,以及泰勒级数展开有:

z=eTs=1+Ts+T2s22!+⋯

差分变换.png

离散化稳态增益保持不变,都不能保持脉冲响应和频率响应

1. 前向差分

z=esT≈1+Ts⇒s=z−1T

前向差分可能将 s 域左半平面的稳定极点映射到 z 平面单位圆外。
原控制器 D(s) 稳定时,数字控制器 D(z) 不一定稳定,实际一般不用前向差分

2. 后向差分

du(t)dt≈u(k)−u(k−1)T=e(k)esT=1e−sT≈11−Ts⇒s=z−1Tz

后向差分将 s 域左半平面的稳定极点映射到 z 平面单位圆内的一个小圆内。
如果 D(s) 稳定,则离散化的数字控制器 D(z) 也一定稳定。(应用较多)
(映射关系有畸变,变换精度较低)

3. 双线性差分 Tustin 变换法

u(k)=u(k−1)+T2[e(k)−e(k−1)]esT=esT/2e−sT/2≈1+T2s1−T2s⇒s=2Tz−1z+1

双线性差分将 s 域左半平面的稳定极点映射到 z 平面单位圆内。
如果 D(s) 稳定,则离散化的数字控制器 D(z) 也一定稳定。(应用较多)

Important

注意得到数字控制器后,如果要进一步得到差分方程,要注意不要出现 z 的项,可以上下同除以 z

D(z)=U(z)E(z)=aTz+(aT−1)=aTz−11+(aT−1)z−1⇒u(k)=aTe(k−1)−(aT−1)u(k−1)D(z)=U(z)E(z)=z+1Az+B=1+z−1A+Bz−1⇒u(k)=−BAu(k−1)+1A(e(k)+e(k−1))

三、零极点匹配法

基本步骤:

  1. 将模拟控制器写为零极点的形式,
  2. 将零点或极点按照 z=eTs 映射到 z 平面:s+a→z−e−aT
  3. 当极点数为 n,零点数为 m 时,在分子上补充 (z+1)n−m,保证零极点个数相等
  4. 选定经典输入信号,按照稳态增益相等的原则匹配增益 kz
    模拟控制器使用:拉普拉斯变换#6.极限性质 数字控制器使用: z 变换#4. 极限定理
    经典控制输入信号的选择要保证:原来的模拟控制器稳态为常数,才有意义
D(s)=ks∏i=1m(s+zi)∏i=1n(s+pi)⇒D(z)=kz∏i=1m(z−e−ziT)∏i=1n(z−e−piT)(z+1)n−mlims→0sD(s)R(s)=limz→1(z−1)D(z)R(z)⇒kz
Important

注意写为零极点形式(无论是模拟控制器还是数字控制器),都要在形式上把增益分离出来,避免混淆

例题 1

D(s)=as+a=a⋅1s+a⇒D(z)=kz1z−e−aT(z+1)lims→0sD(s)1s=1limz→1(z−1)zz−1kzz−e−aT(z+1)=2kz1−e−aT=1

例题 2

D(s)=s+2(s+1)(s+4)⇒D(z)=Kz(z−e−2T)(z+1)(z−e−T)(z−e−4T)lims→0sD(s)R(s)=lims→0ss+2(s+1)(s+4)1s=12limz→1(1−z−1)D(z)R(z)=(1−z−1)⋅Kz(z−e−2T)(z+1)(z−e−T)(z−e−4T)⋅11−z−1=2Kz(1−e−2T)(1−e−T)(1−e−4T)=12